package com.zmn.plat.business.interfaces.servcategory;

import com.alibaba.fastjson.JSONObject;
import com.zmn.plat.common.dto.servcategory.ServCategorySimpleDRO;
import com.zmn.plat.model.entity.servcategory.ShowCategoryAssociationVO;

import java.util.List;

/**
 * @author linfeng
 * @description
 * @since 2019/9/20 11:20
 * @modifier
 **/
public interface ShowCategoryAssociationBService {

    /**
     * 描述: 查询前前台分类关联关系，参数不能同时为空
     *
     * @param servCategId
     *            后台服务分类ID
     * @param categOneId
     *            后台一级产品分类ID
     * @param categId
     *            后台二级产品分类ID
     * @return List<ShowCategoryAssociationVO> 前后台关联关系，以及其分类名称实体集合
     * @auther tanghongjun
     * @since 2019/9/21 11:20
     */
    List<ShowCategoryAssociationVO> listByCategoryId(Integer servCategId, Integer categOneId, Integer categId);


    /**
     * 功能描述 :前台产品二级分类，批量查询关联关系
     * 
     * @author tanbiao
     * @since 2020/4/10
     * @param showCategIds
     * @return java.util.List<com.zmn.plat.model.entity.servcategory.ShowCategoryAssociationVO>
     * @modifier
     */
    List<ShowCategoryAssociationVO> listByShowCategoryIdsFroTariff(List<Integer> showCategIds);

    /**
     * 描述: 根据前台分类ID查询后台分类关联关系，参数不能同时为空
     *
     * @param showServCategId
     *            前台服务分类ID
     * @param showCategOneId
     *            前台一级产品分类ID
     * @param showCategId
     *            前台二级产品分类ID
     * @return List<ShowCategoryAssociationVO> 前后台关联关系，以及其分类名称实体集合
     * @auther tanghongjun
     * @since 2019/9/21 11:20
     */
    List<ShowCategoryAssociationVO> listByShowCategoryId(Integer showServCategId, Integer showCategOneId, Integer showCategId);

    /**
     * 描述：根据前台二级分类ID查询关联的服务分类(服务分类状态和计价器状态都为开启)
     * 
     * @param showCategId
     * @auther linfeng
     * @return
     */
    List<ServCategorySimpleDRO> listServCategByShowCategId(Integer showCategId);

    /**
     * 前台批量关联后台分类，插入前先删除原来的关联
     * 
     * @param creater
     *            操作人
     * @param object
     *            分类关联关系
     * @auther linfeng
     * @return
     */
    void batchRelateBackCategory(String creater, JSONObject object);

}
